下载地址:
oracle:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
sql developer
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
PL/SQL Developer
http://files.allroundautomations.com/plsqldev1207x64.msi
## 通过wget下载,首先需要用chrome 登陆下载Oracle安装包,然后通过chrome查看下载内容获取下载连接地址, 这个地址包含AuthParam,这个值是变的
## Oracle Database 12c Release 2 (12.2.0.1.0) for Linux x86-64 (cksum - 4170261901)
wget "http://download.oracle.com/otn/linux/oracle12c/122010/linuxx64_12201_database.zip?AuthParam=1531550179_0b36f7a93d74a319d16d912549e8f200" -O linuxx64_12201_database.zip
## 或者
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn/linux/oracle12c/122010/linuxx64_12201_database.zip?AuthParam=1531550179_0b36f7a93d74a319d16d912549e8f200"
## Oracle Database 12c Release 2 Grid Infrastructure (12.2.0.1.0) for Linux x86-64 (cksum - 1523222538)
wget "http://download.oracle.com/otn/linux/oracle12c/122010/linuxx64_12201_gsm.zip?AuthParam=1531550996_aafa7bf31f418173242a4d5220592b4b"
## Oracle Database Gateways 12c Release 2 (12.2.0.1.0) for Linux x86-64 (cksum - 2671223080)
wget "http://download.oracle.com/otn/linux/oracle12c/122010/linuxx64_12201_gateways.zip?AuthParam=1531551201_626b9d693e0e19eaa903a50d34774984"
## Oracle Database 12c Release 2 Examples (12.2.0.1.0) for Linux x86-64
wget "http://download.oracle.com/otn/linux/oracle12c/122010/linuxx64_12201_examples.zip?AuthParam=1531551390_b6f3aa6b20993c7afabe834d72459cc9"
## 解压
yum install -y zip unzip
mkdir /data/install
unzip linuxx64_12201_database.zip -d /data/install/
官方帮助文档
http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html
配置计算机名,添加host解析
hostnamectl set-hostname db.test.com
cat /etc/hostname
db.test.com
sestatus
echo "127.0.0.1 db.test.com" >> /etc/hosts
echo "200.200.200.50 db.test.com" >> /etc/hosts
## 关闭防火墙和selinux , 否则安装会有问题
防火墙
firewall-cmd --get-active-zones
firewall-cmd --zone=public --add-port={1521/tcp,5500/tcp,5520/tcp,3938/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
安装环境
1 |
|
1 |
|
查看CentOS自带JDK是否已安装。命令:yum list installed |grep java
若有自带安装的JDK,如何卸载CentOS系统自带Java环境?
卸载JDK相关文件输入:yum -y remove java-1.7.0-openjdk*
卸载tzdata-java输入:yum -y remove tzdata-java.noarch
查看yum库中的Java安装包 命令:yum -y list java*
添加oracle用户
groupadd -g 54321 oinstall
groupadd -g 54322 dba # 数据库管理员
groupadd -g 54323 oper # 数据库操作员
groupadd -g 54324 backupdba # 数据备份恢复管理员
groupadd -g 54325 dgdba # 数据库卫士
groupadd -g 54326 kmdba # 加密密钥管理员
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmdba,asmoper,asmadmin oracle
passwd oracle
修改内核参数
## 查看系统信息
## 默认分页大小
getconf PAGESIZE
4096
sysctl -a | grep sem
kernel.sem = 250 32000 32 128
kernel.sem_next_id = -1
sysctl -a | grep shm
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
vm.hugetlb_shm_group = 0
sysctl -a | grep file-max
fs.file-max = 96145
sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768 60999
## 修改内核参数
1 |
|
## 使之生效
sysctl -p
shmmax - Half the server memory
shmmni - 4096 (or greater)
fs.file-max - 6815744 (or greater)
fs.aio-max-nr - 1048576 (or greater)
net.core.rmem_default - 262144 (or greater)
net.core.rmem_max - 4194304 or greater)
net.core.wmem_default - 262144 (or greater)
net.core.wmem_max - 1048576 (or greater)
sem - 250 32000 100 128 (or greater)
net.ipv4.ip_local_port_range - 9000 65535
注:
vm.hugetlb_shm_group 与 dba 组id一致,hugetlb_shm_group contains group id that is allowed to create SysV shared memory segment using hugetlb page
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数);
SEMMNS(系统信号量最大数);
SEMOPM(每次semopm系统调用操作数);
SEMMNI(系统辛苦量集数最大数)。
Shmmax 最大共享内存2GB, 物理内存如果小的话可以设置成512M, 即: 536870912。
Shmmni 最小共享内存 4096KB。
Shmall 所有内存大小。shmall 的大小为 kernel.shmmax/4096(getconf PAGESIZE可得到)= 3774873
一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。
在redhat上最大共享内存不建议超过
4*1024*1024*1024-1=4294967295
设置完成后用命令 more /etc/sysctl.conf |grep kernel.s 检查。
kernel.shmall: 共享内存页数的最大值
Linux共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,需要共享内存页数是
16GB/4KB=16777216KB/4KB=4194304(页)
kernel.shmmax:单个共享内存段的最大值
shmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax设置应足够大,能在一个共享内存段下容纳下整个的SGA,设置的过低可能会导致需要创建多个共享内存段,可能导致系统性能的下降 。
kernel.shmmni:共享内存段的最大数量
注意该参数不是shmmin,是shmmni,shmmin 表示内存段最小大小 )
shmmni缺省值4096 足够。
shmmax(bytes) = shmmni(page size, default 4k) * shmall (page的个数)
下面专门说说kernel.sem:对应4个值
SEMMSL、SEMMNS、SEMOPM、SEMMNI
SEMMSL: 每个信号集的最大信号数量
数据库最大 PROCESS 实例参数的设置值再加上 10 。
Oracle 建议将 SEMMSL 的值设置为不少于 100 。
SEMMNS:用于控制整个 Linux 系统中信号(而不是信号集)的最大数。
Oracle 建议将 SEMMNS 设置为:系统中每个数据库的 PROCESSES 实例参数设置值的总和,加上最大 PROCESSES 值的两倍,最后根据系统中 Oracle 数据库的数量,每个加 10 。
使用以下计算式来确定在 Linux 系统中可以分配的信号的最大数量。它将是以下两者中较小的一个值:SEMMNS 或 (SEMMSL * SEMMNI)
SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量。semop 系统调用(函数)提供了利用一个 semop 系统调用完成多项信号操作的功能。一个信号集能够拥有每个信号集中最大数量的SEMMSL 信号,因此建议设置 SEMOPM 等于SEMMSL 。
Oracle 建议将 SEMOPM 的值设置为不少于 100 。
SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量。
Oracle 建议将 SEMMNI 的值设置为不少于 100 。
1 |
|
1 | cat >> /etc/pam.d/login << EOF |
修改ulimit:vi /etc/profile,添加:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
修改环境变量
1 |
|
准备安装目录
# oracle/oraInventory是存放oracle 安装日志和脚本的临时目录
# oracle/product/db12c是Oracle 软件二进制程序安装保存路径
# oracle/flush_recovery_area 数据恢复目录
# oradata 存放数据库文件
mkdir -p /data/oracle/{oradata,product/db12c,flush_recovery_area,oraInventory}
chown -R oracle:oinstall /data/oracle
chmod -R 775 /data/oracle
准备安装应答文件
db_install.rsp - 用于安装oracle二进制文件,以静默方式安装/升级数据库
dbca.rsp - 用于以静默方式安装/配置/删除数据库
netca.rsp - 用于在静默模式下为oracle数据库配置简单网络
应答文件配置在本文后面
以oracle用户登录,开始安装:
su oracle
cd /opt/oracle
unzip linuxx64_12201_database.zip
export LANG="en_US"
## 安装,如果提示系统符合安装要求,可以添加-ignoreSysPreReqs
./runInstaller -force -silent -noconfig -responseFile /data/oracle/db_install.rsp
## -silent 表示以静默方式安装,不会有任何提示
## -force 允许安装到一个非空目录
## -noconfig 表示不运行配置助手netca
## -responseFile 表示使用哪个响应文件,必需使用绝对路径
## 安装成功后,以 root 用户的身份执行以下脚本:
exist
/data/oracle/oraInventory/orainstRoot.sh
/data/oracle/product/db12c/root.sh
创建数据库
## 使用应答文件创建数据
## 应答文件(dbca.rsp)配置在本文后面
dbca -silent -createDatabase -responseFile /data/oracle/dbca.rsp
## 通过命令行创建数据库
## 创建一个数据库 testdb ,所有管理员密码都为welcome
1 |
|
## 登陆数据库,查看一下数据库实例的状态:
## 以 DBA 身份进入 sqlplus
$ sqlplus / as sysdba
SQL> select instance_name, status from v$instance;
SQL> show pdbs
SQL> select name from v$datafile;
SQL> select name from v$controlfile;
SQL> select member from v$logfile;
## 错误排查:
安装数据库实例的时候日志文件中显示的错误内容:
ORA-27104: system-defined limits for shared memory was misconfigured
解决方案:修改/etc/sysctl.conf中kernel.shmall的值为536870912。
在服务器上使用sqlplus访问数据库,中文不能正常显示(显示问号)
解决方案:导出环境变量export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
配置监听
## 以静默方式配置监听
netca -silent -responsefile /data/oracle/netca.rsp
## 启动命令
/data/oracle/product/db12c/bin/lsnrctl start LISTENER
## 查看监听状态
lsnrctl status
启动数据库
## 启动过程,先启动监听,验证数据库管理员身份后,才能启动数据库
su - oracle ## 切换到 oracle 用户且切换到它的环境
lsnrctl status ## 查看监听及数据库状态
lsnrctl start ## 启动监听
sqlplus / as sysdba ## 以 DBA 身份进入 sqlplus
SQL>startup ## 启动 db
## 停止
su - oracle ## 切换到 oracle 用户且切换到它的环境
lsnrctl stop ## 停止监听
sqlplus / as sysdba ## 以 DBA 身份进入 sqlplus
SQL>SHUTDOWN IMMEDIATE ## 关闭 db
## 运行startup, 遇到的问题
LRM-00109: could not open parameter file '/data/oracle/product/db12c/dbs/initorcl.ora
## 解决方法
cp /data/oracle/product/db12c/dbs/init.ora /data/oracle/product/db12c/dbs/initorcl.ora
oracle 三种身份验证:
系统验证(默认首先采用的身份验证,如果当前用户是oracle管理员,就直接登陆,不需要再验证用户和密码)
密码文件验证(验证oracle管理员)
数据库验证(验证普通用户)
sqlplus登陆方式
sqlplus有几种登陆方式 比如:
> sqlplus "/as sysdba" --以操作系统权限认证的oracle sys管理员登陆
> sqlplus /nolog --不在cmd或者terminal当中暴露密码的登陆方式
SQL> conn /as sysdba
&
SQL> conn sys/password as sysdba
> sqlplus scott/tiger --非管理员用户登陆
> sqlplus scott/tiger@orcl --非管理员用户使用tns别名登陆
> sqlplus sys/password@orcl as sysdba --管理员用户使用tns别名登陆
> sqlplus --不显露密码的登陆方式
Enter user-name:sys
Enter password:password as sysdba --以sys用户登陆的话 必须要加上 as sysdba 子句
创建数据库的应答文件
1 |
|
监听配置文件
1 |
|
重启时自动启动数据库
以root用户,修改/etc/oratab的最后一行,将N改成Y,保证数据库在系统重启之后自动启动。
# vi /etc/oratab
orcl:/data/oracle/product/db12c:Y
创建自启动脚本/etc/init.d/dbora
# vi /etc/init.d/dbora
ORA_HOME=/data/oracle/product/db12c
ORA_OWNER=oracle
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
# Remove "&" if you don't want startup as a background process.
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" &
touch /var/lock/subsys/dbora
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" &
rm -f /var/lock/subsys/dbora
;;
esac
# EM express 开启
$ sqlplus / as sysdba
SQL> show parameter dispatchers
SQL> exec DBMS_XDB_CONFIG.setHTTPPort(5500);
# web 访问管理界面
http://200.200.200.50:5500/em
注意,登录的时候使用用户名sys,密码welcome,不指定容器名,并选择以sysdba身份登录。
http://xintq.net/2017/04/18/install-db12c-ol73/#%E9%87%8D%E5%90%AF%E6%97%B6%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%E6%95%B0%E6%8D%AE%E5%BA%93
静默安装应答文件
## 复制oracle 安装目录下的db_install.rsp
cp ./database/response/db_install.rsp ./db_install.rsp
## 简单配置
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=db.test.com
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/db12c
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.config.starterdb.globalDBName=db.test.com
oracle.install.db.config.starterdb.SID=orc1
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1024
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.password.ALL=lion.net
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
1 |
|
参考
https://blog.csdn.net/gengyuntuo/article/details/79607595
http://xintq.net/2017/09/22/silent-install-ora12c-ol7/
https://docs.oracle.com/en/database/oracle/oracle-database/index.html
https://www.jianshu.com/p/309bb3504285?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
http://blog.csdn.net/github_39294367/article/details/77057149
http://www.gimoo.net/t/1803/5a975ea1b3e13.html
https://wiki.centos.org/HowTos/Oracle12onCentos7
http://blog.csdn.net/jssg_tzw/article/details/53402743
http://blog.csdn.net/jc_benben/article/details/69911904